package cn.edu.hnu.gpg.service;

import cn.edu.hnu.gpg.dto.StudentDocumentInfo;
import cn.edu.hnu.gpg.entity.StudentDoc;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface StudentDocService {

    Integer createOrReplace(String dirPath, String fileName, MultipartFile file, Integer studentId, Integer phaseId) throws IOException;

//    void replaceDocument(Integer documentId, String dirPath, Map<String, MultipartFile> fileMap);

    StudentDocumentInfo queryDocumentInfo(Integer fileId);

    List<StudentDocumentInfo> listDocumentByStudentId(Integer studentId);

    List<StudentDocumentInfo> listDocumentByUserId(Integer userId);

    /**
     * 对学生的文件做出评价
     * @param upload_file_id 文件id
     * @param uploader 文件的上传者（实际为用户id，使用此获取对应的学生的student_id）
     * @param score 评分
     * @param comment 文字叙述评价
     * @param phase_id 对应的毕业设计阶段
     * @return 是否评价成功
     */
    boolean gradeStudentDoc(int upload_file_id,int uploader,int score ,String comment,int phase_id);

    /**
     * 对学生的文件作出评价
     * @param studentDoc 对应的文件对象
     * @return 是否记录成功
     */
    boolean gradeStudentDoc(StudentDoc studentDoc);

    /**
     * 删除某个评价记录
     * @param studentDoc_Id 对应的评价记录id
     * @return 是否删除成功
     */
    boolean deleteByDocId(int studentDoc_Id);
}
